home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK2.toast / Development Kits (Disc 2) / QuickDraw GX / Programming Stuff / Sample Code / Printing Samples / Printer Drivers… / ImageWriterLQ (alt. rdip) / UniversalMessageResources.r < prev    next >
Encoding:
Text File  |  1995-04-10  |  42.0 KB  |  1,181 lines  |  [TEXT/MPS ]

  1. /* ------------------------------------------------------------------------------
  2. FILENAME
  3.     UniversalMessageResources.r
  4.  
  5. DESCRIPTION
  6.     This module contains the ImageWriter LQ constants, types, and resources that
  7.     are specific to supporting the New (QuickDraw GX) API.
  8.             
  9.     Note: all resources should be designated to load into the system heap.
  10.  
  11. COPYRIGHT
  12.      Copyright Apple Computer, Inc. 1992-1994
  13.      All rights reserved. 
  14.     
  15.     12/20/93 - dmh - Sync'd with the shipping 1.0b3 GX driver.
  16.      8/28/94 - dmh - Sync'd with the shipping 1.0.1 GX driver.
  17.  
  18. -------------------------------------------------------------------------------- */
  19.  
  20. // System 7.0 Compatible
  21. #define SystemSevenOrLater        1
  22.  
  23. // Include System Resource Definitions
  24. #include "Types.r"
  25. #include "SysTypes.r"
  26. #include "BalloonTypes.r"
  27.  
  28. // Include the ImageWriter LQ driver constants that are used in the resources 
  29. #include "Resources.h"
  30.  
  31. // Include the public QuickDraw GX printing files 
  32. #include "PrintingResTypes.r"
  33.  
  34.  
  35. /*********************************************************************************
  36.  *                                RESOURCES                                                              *
  37.  *********************************************************************************/
  38.  
  39. /*************************** Universal Imaging Message Override Resource **************************/
  40. // This overrideType resource tells the Printing Manager which new Universal Imaging 
  41. // Messages the driver overrides. 
  42.  
  43. resource gxOverrideType (gxDriverUniversalOverrideID, sysheap, purgeable)
  44. {
  45.     {
  46.         gxInitialize,                kNewAPISegmentID, kFirstMsgJumpTableOffset,
  47.         gxShutDown,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 4,
  48.         gxJobDefaultFormatDialog,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 8,
  49.         gxJobPrintDialog,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 12,
  50.         gxJobFormatModeQuery,         kNewAPISegmentID, kFirstMsgJumpTableOffset + 16,
  51.         gxOpenConnection,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 20,
  52.         gxCleanupOpenConnection,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 24,
  53.         gxStartSendPage,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 28,
  54.         gxImagePage,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 32,
  55.         gxRenderPage,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 36,
  56.         gxDefaultPrinter,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 40,
  57.         gxDefaultFormat,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 44,
  58.         gxDefaultJob,                 kNewAPISegmentID, kFirstMsgJumpTableOffset + 48,
  59.         gxSetupImageData,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 52,
  60.         gxFetchTaggedData,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 56,
  61.         gxDefaultDesktopPrinter,    kNewAPISegmentID, kFirstMsgJumpTableOffset + 60,
  62.         gxGetDTPMenuList,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 64,
  63.         gxDTPMenuSelect,            kNewAPISegmentID, kFirstMsgJumpTableOffset + 68,
  64.     };
  65. };
  66.  
  67.  
  68. /*************************** Raster Imaging Message Override Resource **************************/
  69. // This overrideType resource tells the Printing Manager which Raster Imaging Messages the driver 
  70. // overrides. 
  71.  
  72. resource gxOverrideType (gxDriverImagingOverrideID, sysheap, purgeable)
  73. {
  74.     {
  75.         gxRasterPackageBitmap,         kNewAPISegmentID, kFirstMsgJumpTableOffset + 72,
  76.         gxRasterLineFeed,             kNewAPISegmentID, kFirstMsgJumpTableOffset + 76,
  77.     };
  78. };
  79.  
  80.  
  81. /*************************** Type of Imaging System Supported by the Driver **************************/
  82. // This imagingSystemResType resource tells the Printing Manager the type of imaging system this 
  83. // driver uses.
  84.  
  85. resource gxImagingSystemSelectorType (gxImagingSystemSelectorID, sysheap, purgeable)
  86. {
  87.     gxRasterPrinterType        // LaserWriter SC uses the raster imaging system 
  88. };
  89.  
  90.  
  91. /*************************** Customizing Behavior of Raster Imaging Messages ***************************/
  92. // For most raster devices, the driver should include a resource of type, rasterPrefsType.  This 
  93. // resource allows the driver to specify the imaging options and format page scaling.   
  94.  
  95. resource gxRasterPrefsType (gxRasterPrefsID, sysheap, purgeable)
  96. {
  97.     gxDefaultRaster,            // default options are fine
  98.     
  99.     0x00D80000,    0x00D80000,        // 216 x 216 dpi device
  100.     24,                            // min band size
  101.     0,                            // max band size (0 = full page)
  102.     0x00008000,                    // RAM percentage (50%)
  103.     100*1024,                    // RAM slop (100K)
  104.     1,                            // 1 bit per plane device
  105.     {
  106.         gxDefaultOffscreen,                                    // YELLOW plane.  Use default halftoning.
  107.         0x000F0000,                                            // Angle = 15 degrees
  108.         0x002D0000,                                            // Freq = 45
  109.         gxRoundDot,                                            // RoundDot dithering
  110.         gxComponent3Tint,                                    // Extract yellow and dither it
  111.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                // DotColor == black
  112.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // Background color == white
  113.         gxCMYKSpace,                                        // Convert to gxCMYKSpace before halftoning.
  114.         gxNoSpace,                                            // No explicit color space
  115.         gxNoSet,                                            // No color set
  116.         gxNoProfile,                                        // No profile specified
  117.  
  118.         gxDefaultOffscreen,                                    // MAGENTA plane.  Use default halftoning.
  119.         0x00000000,                                            // Angle = 0 degrees
  120.         0x002D0000,                                            // Freq = 45
  121.         gxRoundDot,                                            // RoundDot dithering
  122.         gxComponent2Tint,                                    // extract magenta and dither it
  123.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                // dotColor == black
  124.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // background color == white
  125.         gxCMYKSpace,                                        // Convert to gxCMYKSpace before halftoning.
  126.         gxNoSpace,                                            // No explicit color space
  127.         gxNoSet,                                            // No color set
  128.         gxNoProfile,                                        // No profile specified
  129.  
  130.         gxDefaultOffscreen,                                    // CYAN plane.  Use default halftoning.
  131.         0x003C0000,                                            // Angle = 60 degrees
  132.         0x002D0000,                                            // Freq = 45
  133.         gxRoundDot,                                            // RoundDot dithering
  134.         gxComponent1Tint,                                    // Extract cyan and dither it
  135.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                // DotColor == black
  136.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // Background color == white
  137.         gxCMYKSpace,                                        // Convert to gxCMYKSpace before halftoning.
  138.         gxNoSpace,                                            // No explicit color space
  139.         gxNoSet,                                            // No color set
  140.         gxNoProfile,                                        // No profile specified
  141.  
  142.         gxDefaultOffscreen,                                    // BLACK plane.  Use default halftoning.
  143.         0x002D0000,                                            // Angle = 45 degrees
  144.         0x002D0000,                                            // Freq = 45
  145.         gxRoundDot,                                            // RoundDot dithering
  146.         gxComponent4Tint,                                    // Extract black and dither it
  147.         gxRGBSpace, gxNoProfile, 0, 0, 0, 0,                // DotColor == black
  148.         gxRGBSpace, gxNoProfile, 0xFFFF, 0xFFFF, 0xFFFF, 0,    // Background color == white
  149.         gxCMYKSpace,                                        // Convert to gxCMYKSpace before halftoning.
  150.         gxNoSpace,                                            // No explicit color space
  151.         gxNoSet,                                            // No color set
  152.         gxNoProfile                                            // No profile specified
  153.     };
  154. };
  155.  
  156. // The rasterPackType resource allows us to control the packaging that takes place within the
  157. // raster generic driver's RasterDataIn proc.  Drivers which do not use the Raster 
  158. // generic RasterDataIn proc or override it entirely themselves need not have this resource.
  159.  
  160. resource gxRasterPackType (gxRasterPackID, sysheap, purgeable)
  161. {
  162.     kBufferSize,        // packing buffer size - for the ImageWriter LQ 
  163.                             // this is the # of bytes in our largest single packaged line
  164.     
  165.     4,                        // we are a CMYK device (so colorsPasses == 4)
  166.     24,                    // we have a 24 pixel high head
  167.     1,                        // it takes one pass to achive this 24 pixels
  168.     0,                        // number of pixel difference between passes; N/A since we do it in one pass
  169.     gxInterlaceColor,    // avoid ribbon contamination
  170. };
  171.  
  172. // The rasterPackOptionsType resource controls the remaining 2 raster packaging messages: RasterLineFeed,
  173. // and RasterPackageBitmap.  If you allow the generic driver to implement these messages for
  174. // you, then you MUST have a resource of this type. 
  175.  
  176. resource gxRasterPackOptionsType (gxRasterPackOptionsID, sysheap, purgeable)
  177. {
  178.     gxPrintingDriverBaseID,            //    Resource ID of 'wstr' resource containing the start page string to send to printer
  179.     gxPrintingDriverBaseID + 4,    //    Resource ID of 'wstr' resource containing the form feed string to send to printer
  180.     
  181.     // forward line feed characteristics
  182.     99,                            // max line feed amount is 99
  183.     gxRasterNumToASCII,        // express line feed as ASCII
  184.     2,                                // minimum width of ASCII number is 2
  185.     "0",                            // pad ASCII number with leading zeros
  186.     "\0X1BT",                    // <esc>T == set line feed size
  187.     "\0X1Bf\0X0A",                // <esc>f<lf> == direction forward, do line feed
  188.     
  189.     // reverse line feed characteristics
  190.     99,                            // max line feed amount is 99
  191.     gxRasterNumToASCII,        // express line feed as ASCII
  192.     2,                                // minimum width of ASCII number is 2
  193.     "0",                            // pad ASCII number with leading zeros
  194.     "\0X1BT",                    // <esc>T == set line feed size
  195.     "\0X1Br\0X0A",                // <esc>r<lf> == direction reverse, do line feed
  196. };
  197.  
  198. // These 'wstr' resources are the start page and form feed strings that are referenced in the rasterPackOptionsType
  199. // resource
  200.  
  201. resource 'wstr' (kHighResUniDirID, sysheap, purgeable)
  202. {
  203.     "\0X1B>" "\0X1Be"                // Start page string for high resolution: unidirectional, 216 dpi == ESC > ESC e
  204. };
  205.  
  206. resource 'wstr' (kHighResBiDirID, sysheap, purgeable)
  207. {
  208.     "\0X1B<" "\0X1Be"                // Start page string for high resolution: bidirectional, 216 dpi == ESC < ESC e
  209. };
  210.  
  211. resource 'wstr' (kLowResUniDirID, sysheap, purgeable)
  212. {
  213.     "\0X1B>" "\0X1Bn"    "\0X1B!"    // Start page string for standard resolution: unidirectional, 72 dpi, boldface  == ESC > ESC e ESC !
  214. };
  215.  
  216. resource 'wstr' (kLowResBiDirID, sysheap, purgeable)
  217. {
  218.     "\0X1B<" "\0X1Bn"    "\0X1B!"    // Start page string for standard resolution: bidirectional, 72 dpi, boldface == ESC < ESC n ESC !
  219. };
  220.  
  221. resource 'wstr' (gxPrintingDriverBaseID + 4, sysheap, purgeable) 
  222. {
  223.     "\0X0C"    "\0X1B\0X22"        // End page string:   a control-L for the IW LQ's form feed and turn off boldface if needed (ESC ")
  224. };
  225.  
  226.  
  227. /*************************** I/O Related Resources ***************************/
  228.  
  229. // This universalIOPrefsType resource controls the behavior of the standard buffering and IO 
  230. // within the Universal Driver. 
  231.  
  232. resource gxUniversalIOPrefsType (gxUniversalIOPrefsID, sysheap, purgeable)
  233. {
  234.         standardIO,
  235.         4,                    // Universal Driver will not allocate any buffers 
  236.         kBufferSize,    // size of the buffers allocated (at least as big as one scan line) 
  237.         10,                // number of I/O request blocks to allocate for the Universal Driver's I/O 
  238.         1200,                // 1200 tick timeout for open/close 
  239.         1200,                // 1200 tick timeout for reading and writing 
  240. };
  241.     
  242. // The following resources are strings for capturing PAP ImageWriter LQ's
  243.  
  244. resource gxCaptureType (gxCapturedAppleTalkType, sysheap, purgeable)
  245. {
  246.     "\0D011LQShared"
  247. };
  248. resource gxCaptureType (gxUncapturedAppleTalkType, sysheap, purgeable)
  249. {
  250.     "\0D011LQ"
  251. };
  252.  
  253. resource gxCaptureType (gxCaptureStringID, sysheap, purgeable)
  254. {
  255.     "\0X1B\0X62NAMELENPRINTERNAMETYPELENPRINTERTYPE\0X01*"
  256. };
  257.  
  258. resource gxCaptureType (gxReleaseStringID, sysheap, purgeable)
  259. {
  260.     "\0X1B\0X62NAMELENPRINTERNAMETYPELENPRINTERTYPE\0X01*"
  261. };
  262.  
  263.  
  264. /*************************** Status Dialog Related Resources ***************************/
  265. // The 'stat' resources provide the Printing Manager the status messages that need to be displayed at
  266. // any given time during the printing process. The driver forces statuses to be displayed by calling 
  267. // either ReportStatus or AlertTheUser, depending upon whether the user needs to make some decision 
  268. // about the printing process (e.g. paper tray not properly loaded. Note that though the statID field
  269. // of the 'stat' resource is for the clients use (us), PrinterShare requires that any 'stat' list
  270. // entry that has the same status type (e.g. informationalStatus) must have a unique statID.  The reason
  271. // is that PrinterShare uses the (status type, statID) pair in comparisons to see if the status has
  272. // changed.
  273.  
  274. resource 'stat' (kDriverStatusID, sysheap, purgeable)         // Driver status informational messages only 
  275. {
  276.     kDrvrCreatorType,
  277.     {
  278.         printerReady,     1,        kNoAlertCoolID,    "Sending data to the printer…";
  279.     }
  280. };
  281.  
  282.  
  283. /*************************** Paper Type Definitions for the New Printing Architecture **************************/
  284. // These paper type definitions represent the new settings for the ImageWriter LQ's paper 
  285. // sizes. 
  286.  
  287. resource 'ptyp' (kNewPaperTypesID + 1, sysheap, purgeable)            // US Letter 
  288. {
  289.     "US Letter",
  290.     
  291.     // page rectangle 
  292.     0x00000000,                // 8.0 x 10.33
  293.     0x00000000,                
  294.     0x02400000,                
  295.     0x02E7C298,                
  296.  
  297.     // paper rectangle 
  298.     0xFFEE0000,                // 8.5 x 11.0
  299.     0xFFE7E14C,                
  300.     0x02520000,                
  301.     0x02FFE14C,                
  302.     
  303.     usLetterBase,
  304.     kDrvrCreatorType,
  305.  
  306.     inch,
  307.     newStylePaperType,
  308.     isDefaultPaperType,
  309.     {}
  310. };
  311.  
  312. resource 'ptyp' (kNewPaperTypesID + 2, sysheap, purgeable)            // US Legal 
  313. {
  314.     "US Legal",
  315.     
  316.     // page rectangle 
  317.     0x00000000,                // 8.0 x 13.33
  318.     0x00000000,                
  319.     0x02400000,                    
  320.     0x03BFC298,                
  321.  
  322.     // paper rectangle 
  323.     0xFFEE0000,                // 8.5 x 14.0
  324.     0xFFE7E14C,                
  325.     0x02520000,                
  326.     0x03D7E14C,                
  327.     
  328.     usLegalBase,
  329.     kDrvrCreatorType,
  330.  
  331.     inch,
  332.     newStylePaperType,
  333.     notDefaultPaperType,
  334.     {}
  335. };
  336.  
  337. resource 'ptyp' (kNewPaperTypesID + 3, sysheap, purgeable)            // Computer Paper 
  338. {
  339.     "Computer Paper",
  340.     
  341.     // page rectangle 
  342.     0x00000000,                // 13.33 x 10.33 
  343.     0x00000000,
  344.     0x03BFC298,
  345.     0x02E7C298,
  346.  
  347.     // paper rectangle 
  348.     0xFFE7E14C,                //    14.0 x 11.0
  349.     0xFFE7E14C,
  350.     0x03D7E14C,
  351.     0x02FFE14C,
  352.     
  353.     unknownBase,
  354.     kDrvrCreatorType,
  355.  
  356.     inch,
  357.     newStylePaperType,
  358.     notDefaultPaperType,
  359.     {}
  360. };
  361.  
  362. resource 'ptyp' (kNewPaperTypesID + 4, sysheap, purgeable)            // A4 Letter 
  363. {
  364.     "A4 Letter",
  365.     
  366.     // page rectangle 
  367.     0x00000000,                // 8.0 x 11.0 
  368.     0x00000000,                
  369.     0x02400000,                
  370.     0x03180000,                
  371.  
  372.     // paper rectangle 
  373.     0xFFF70000,                // 8.25 x 11.67
  374.     0xFFE7E14C,                
  375.     0x02490000,                
  376.     0x03301EB4,                
  377.     
  378.     a4LetterBase,
  379.     kDrvrCreatorType,
  380.  
  381.     inch,
  382.     newStylePaperType,
  383.     notDefaultPaperType,
  384.     {}
  385. };
  386.  
  387. resource 'ptyp' (kNewPaperTypesID + 5, sysheap, purgeable)            // International Fanfold 
  388. {
  389.     "International Fanfold",
  390.     
  391.     // page rectangle 
  392.     0x00000000,                    // 8.0 x 11.33 
  393.     0x00000000,                    
  394.     0x02400000,                    
  395.     0x032FC298,                    
  396.     
  397.     // paper rectangle 
  398.     0xFFF70000,                    // 8.25 x 12.0 
  399.     0xFFE7E14C,                    
  400.     0x02490000,                    
  401.     0x0347E14C,                    
  402.     
  403.     unknownBase,
  404.     kDrvrCreatorType,
  405.  
  406.     inch,
  407.     newStylePaperType,
  408.     notDefaultPaperType,
  409.     {}
  410. };
  411.  
  412. resource 'ptyp' (kNewPaperTypesID + 6, sysheap, purgeable)            // Envelope (#10) 
  413. {
  414.     "Envelope (#10)",
  415.     
  416.     // page rectangle 
  417.     0x00000000,                    // 9.3333 x 3.3333 
  418.     0x00000000,                    
  419.     0x029FFF58,                    
  420.     0x00EFFF58,                    
  421.     
  422.     // paper rectangle 
  423.     0xFFF9FFAC,                    // 9.5 x 4.125 
  424.     0xFFE37FAC,                    
  425.     0x02A5FFAC,                    
  426.     0x010C7FAC,                    
  427.     
  428.     unknownBase,
  429.     kDrvrCreatorType,
  430.  
  431.     inch,
  432.     newStylePaperType,
  433.     notDefaultPaperType,
  434.     {}
  435. };
  436.  
  437.  
  438. /*************************** "LQ Options" Job Print Dialog Panel Resources **************************/
  439. // The following resources describe a dialog panel, LQ Options", that is always added by the LW driver 
  440. // to the Print Job dialog.  It currently contains one option, which is to select bidirectional or
  441. // unidirectional printing.
  442.  
  443. // The 'ppnl' resource provides a description of the panel we want to have displayed by the Printing Manager
  444.  
  445. resource 'ppnl'  (kLQOptionsPanl, sysheap, purgeable)
  446. {
  447.         "LQ Options",         //    Name that appears below the panel's icon
  448.         smRoman,             //    script to use
  449.         kDriverIconID,     //    Resource ID of the panel's icon (an 'iclX' resource)
  450.         kLQOptionsDITL;    //    Resource ID of the 'DITL' that describes the dialog panel items
  451. };
  452.  
  453. // The 'DITL' resource describes the panel's dialog items
  454.  
  455. resource 'DITL' (kLQOptionsDITL, sysheap, purgeable) 
  456. {
  457.     {
  458.         /* [1] */    {10, 10, 26, 190}, StaticText {disabled, "Options:"},
  459.                 
  460.         /* [2] */    {33, 20, 49, 99}, StaticText {disabled, "Head Scan:"},
  461.         /* [3] */    {56, 50, 72, 218}, RadioButton {enabled, "Bidirectional"},
  462.         /* [4] */    {79, 50, 95, 218}, RadioButton {enabled, "Unidirectional"}
  463.     }
  464. };
  465.  
  466. // The 'xdtl' resource tells the Printing Manager the type of items that are logically grouped in 
  467. // the dialog panel and specifies the Job collection item into which the dialog item settings
  468. // should be stored.
  469.  
  470. resource 'xdtl' (kLQOptionsXdtl, sysheap, purgeable)
  471. {
  472.     {    
  473.         RadioButtons    { kDrvrCreatorType, kHeadMotionItemIndex,  0, {3, 4} }
  474.     };
  475. };
  476.  
  477. resource 'hdlg' (kLQOptionsPanl, purgeable, sysHeap) 
  478. {
  479.     HelpMgrVersion,
  480.     0,
  481.     hmDefaultOptions,
  482.     0,
  483.     3,        // hang left
  484.     
  485.     // missing items
  486.     HMSkipItem {},
  487.  
  488.     {
  489.     HMSkipItem {},
  490.     HMSkipItem {},
  491.  
  492.     HMStringResItem{
  493.         {6,6},
  494.         {0,0,0,0},
  495.         kHelpID, 1, 0, 0, kHelpID, 1, 0, 0, 
  496.         };
  497.  
  498.     HMStringResItem{
  499.         {6,6},
  500.         {0,0,0,0},
  501.         kHelpID, 2, 0, 0, kHelpID, 2, 0, 0, 
  502.         };
  503.         
  504.     }
  505. };
  506.  
  507. resource 'STR#' (kHelpID, purgeable, sysHeap)
  508. {
  509.     {
  510.     "Checking this option causes your printout to print faster, but with less quality.";
  511.     "Checking this option causes your printout to print slower, but with higher quality.";
  512.     };
  513. };
  514.  
  515.  
  516. /*************************** Default Input Tray Related Resources **************************/
  517. // The following resources describe the default input tray for the LQ printer.  These
  518. // resources are accessed by the Printing Manager when a deskptop printer is created.  They
  519. // define the default paper input slot for the printer.
  520.  
  521.  
  522. // The trayNameDataType specifies the human readable name of the default input tray
  523.  
  524. resource gxTrayNameDataType (kDefaultTrayNameID, sysheap, purgeable)
  525. {
  526.     "Paper Feed Slot";
  527. };
  528.  
  529.  
  530. // trayCountDataType specifies the default number of paper feed trays. Note that the
  531. // Printing Manager requires that this resource have resource ID trayCountDataID.
  532.  
  533. resource gxTrayCountDataType (kDefaultTrayRsrcID, sysheap, purgeable)
  534. {
  535.     1;
  536. };
  537.  
  538.  
  539. /*************************** LQ Cut Sheet Feeder Related Resources **************************/
  540. // The following resources describe the default number of sheet feeder trays for an LQ with a
  541. // feeder attached and the human readable names of the trays.
  542.  
  543.  
  544. // trayNameDataType specify the human readable names of the trays
  545.  
  546. resource gxTrayNameDataType (kDefaultSheetFdrTray1NameID, sysheap, purgeable)
  547. {
  548.     "Tray #1";
  549. };
  550.  
  551. resource gxTrayNameDataType (kDefaultSheetFdrTray2NameID, sysheap, purgeable)
  552. {
  553.     "Tray #2";
  554. };
  555.  
  556. resource gxTrayNameDataType (kDefaultSheetFdrTray3NameID, sysheap, purgeable)
  557. {
  558.     "Tray #3";
  559. };
  560.  
  561.  
  562. // trayCountDataType specifies the number of trays. Note that the
  563. // Printing Manager requires that this resource have resource ID trayCountDataID.
  564.  
  565. resource gxTrayCountDataType (kDefaultSheetFeederRsrcID, sysheap, purgeable)
  566. {
  567.     3;
  568. };
  569.  
  570.  
  571. /*************************** LQ Cut Sheet Feeder Dialog Setup Related Resources **************************/
  572. // The following resources describe the dialog that is displayed when the user attempts to configure
  573. // the paper that's contained in the printer's sheet feeder.  
  574.  
  575.  
  576. // These DITL and DLOG resources describe the sheetfeeder dialog
  577.  
  578. resource 'DITL' (kSheetFeederDITL, sysheap, purgeable)
  579. {
  580.     {
  581.         /* [1] */    {158, 380, 178, 440}, Button {enabled, "OK"},
  582.         /* [2] */    {158, 304, 178, 364}, Button {enabled, "Cancel"},
  583.         /* [3] */    {10, 30, 26, 370}, StaticText {disabled, "Please specify the paper in the LQ printer:"},
  584.         /* [4] */    {39, 247, 59, 440}, Control {enabled, kTray1Control},        // Tray #1 pop-up
  585.         /* [5] */    {64, 247, 84, 440}, Control {enabled, kTray2Control},        //    Tray #2 pop-up
  586.         /* [6] */    {87, 247, 110, 440}, Control {enabled, kTray3Control},    //    Tray #3 pop-up
  587.         /* [7] */    {47, 62, 177, 239}, UserItem {disabled}                        //    Picture of printer with sheetfeeder
  588.     }
  589. };
  590.  
  591. resource 'DLOG' (kSheetFeederDLOG, sysheap, purgeable)
  592. {
  593.     {34, 14, 225, 476},
  594.     dBoxProc,
  595.     invisible,
  596.     noGoAway,
  597.     0x0,
  598.     kSheetFeederDITL,
  599.     "LQ Setup",
  600.     alertPositionMainScreen
  601. };
  602.  
  603.  
  604. // This resource is needed for proper use of color in the Sheetfeeder dialog
  605.  
  606. resource 'dctb' (kSheetFeederDLOG, sysheap, purgeable)
  607. {
  608.     {    /* array ColorSpec: 0 elements */
  609.     }
  610. };
  611.  
  612.  
  613. // These MENU resources describe the pop-up menus that are included in the sheetfeeder dialog
  614.  
  615. resource 'MENU' (kTray1Menu, sysheap, purgeable)
  616. {
  617.     kTray1Menu,
  618.     textMenuProc,
  619.     allEnabled,
  620.     enabled,
  621.     "Tray #1",
  622.     {    /* array: 0 elements */
  623.     }
  624. };
  625.  
  626. resource 'MENU' (kTray2Menu, sysheap, purgeable)
  627. {
  628.     kTray2Menu,
  629.     textMenuProc,
  630.     allEnabled,
  631.     enabled,
  632.     "Tray #2",
  633.     {    /* array: 0 elements */
  634.     }
  635. };
  636.  
  637. resource 'MENU' (kTray3Menu, sysheap, purgeable)
  638. {
  639.     kTray3Menu,
  640.     textMenuProc,
  641.     allEnabled,
  642.     enabled,
  643.     "Tray #3",
  644.     {    /* array: 0 elements */
  645.     }
  646. };
  647.  
  648.  
  649. // These CNTL resources describe the dialog controls that reference the pop-up menus in the sheetfeeder dialog
  650.  
  651. resource 'CNTL' (kTray1Control, sysheap, purgeable)
  652. {
  653.     {39, 247, 59, 440},
  654.     0,
  655.     visible,
  656.     65,
  657.     kTray1Menu,
  658.     1008,
  659.     0,
  660.     "Tray #1:"
  661. };
  662.  
  663. resource 'CNTL' (kTray2Control, sysheap, purgeable)
  664. {
  665.     {64, 247, 84, 440},
  666.     0,
  667.     visible,
  668.     65,
  669.     kTray2Menu,
  670.     1008,
  671.     0,
  672.     "Tray #2:"
  673. };
  674.  
  675. resource 'CNTL' (kTray3Control, sysheap, purgeable)
  676. {
  677.     {87, 247, 110, 440},
  678.     0,
  679.     visible,
  680.     65,
  681.     kTray3Menu,
  682.     1008,
  683.     0,
  684.     "Tray #3:"
  685. };
  686.  
  687.  
  688. // These PICT resources are displayed in the sheetfeeder dialog and contain images of a 1, 2, and 3 tray LQ printer
  689.  
  690. resource 'PICT' (kThreeTrayPICT, sysheap, purgeable)                // Three tray LQ sheetfeeder
  691. {
  692.     1212,
  693.     {0, 0, 130, 177},
  694.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  695.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  696.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  697.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  698.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  699.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  700.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  701.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  702.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  703.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  704.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  705.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  706.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  707.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  708.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  709.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  710.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  711.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  712.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  713.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  714.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  715.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  716.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  717.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  718.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  719.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  720.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  721.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  722.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  723.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  724.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  725.     $"0023 F500 00A0 00A1 00A0 00A0 00A1 00A4"
  726.     $"0002 0750 0001 000A 0000 0000 0000 0000"
  727.     $"0022 0060 0057 0000 0023 0DEA 0023 0000"
  728.     $"0023 0900 0023 0000 0023 F516 0023 0000"
  729.     $"0023 F500 0023 0000 001A BFFF BFFF BFFF"
  730.     $"0084 000A 0000 0000 0000 0000 00A0 00A3"
  731.     $"0001 000A FFFF FFFF 0081 00B0 0081 00C0"
  732.     $"004A 0057 0060 006D 004A 0064 006D 7FFF"
  733.     $"004B 0063 0064 006C 006D 7FFF 004D 0062"
  734.     $"0063 006B 006C 7FFF 004E 0061 0062 7FFF"
  735.     $"004F 006A 006B 7FFF 0050 0060 0061 7FFF"
  736.     $"0051 0069 006A 7FFF 0052 005F 0060 7FFF"
  737.     $"0053 005E 005F 0068 0069 7FFF 0055 005D"
  738.     $"005E 0067 0068 7FFF 0057 005C 005D 0066"
  739.     $"0067 7FFF 0058 005B 005C 7FFF 0059 0065"
  740.     $"0066 7FFF 005A 005A 005B 7FFF 005B 0064"
  741.     $"0065 7FFF 005C 0059 005A 7FFF 005D 0058"
  742.     $"0059 0063 0064 7FFF 005F 0057 0058 0062"
  743.     $"0063 7FFF 0060 0057 0062 7FFF 7FFF 001A"
  744.     $"0000 0000 0000 0023 0DEA 0023 0900 0023"
  745.     $"F516 0023 F500 00A0 00A1 00A0 00A0 00A1"
  746.     $"00A4 0002 0750 0001 000A 0000 0000 0000"
  747.     $"0000 0022 0060 0075 0000 0023 0DEA 0023"
  748.     $"0000 0023 0900 0023 0000 0023 F516 0023"
  749.     $"0000 0023 F500 0023 0000 001A BFFF BFFF"
  750.     $"BFFF 0084 000A 0000 0000 0000 0000 00A0"
  751.     $"00A3 0001 000A FFFF FFFF 0081 00B0 0081"
  752.     $"00C0 004A 0075 0060 008B 004A 0082 008B"
  753.     $"7FFF 004B 0081 0082 008A 008B 7FFF 004D"
  754.     $"0080 0081 0089 008A 7FFF 004E 007F 0080"
  755.     $"7FFF 004F 0088 0089 7FFF 0050 007E 007F"
  756.     $"7FFF 0051 0087 0088 7FFF 0052 007D 007E"
  757.     $"7FFF 0053 007C 007D 0086 0087 7FFF 0055"
  758.     $"007B 007C 0085 0086 7FFF 0057 007A 007B"
  759.     $"0084 0085 7FFF 0058 0079 007A 7FFF 0059"
  760.     $"0083 0084 7FFF 005A 0078 0079 7FFF 005B"
  761.     $"0082 0083 7FFF 005C 0077 0078 7FFF 005D"
  762.     $"0076 0077 0081 0082 7FFF 005F 0075 0076"
  763.     $"0080 0081 7FFF 0060 0075 0080 7FFF 7FFF"
  764.     $"001A 0000 0000 0000 0023 0DEA 0023 0900"
  765.     $"0023 F516 0023 F500 00A0 00A1 0022 004B"
  766.     $"008A 0CE7 0022 004A 006D 17CF 0022 004A"
  767.     $"0050 23B7 0022 0032 0096 1800 0022 0019"
  768.     $"0086 2900 0022 0001 0073 3C00 00A0 0083"
  769.     $"00FF"
  770. };
  771.  
  772. resource 'PICT' (kTwoTrayPICT, sysheap, purgeable)                // Two tray LQ sheetfeeder
  773. {
  774.     874,
  775.     {0, 0, 130, 177},
  776.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  777.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  778.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  779.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  780.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  781.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  782.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  783.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  784.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  785.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  786.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  787.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  788.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  789.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  790.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  791.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  792.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  793.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  794.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  795.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  796.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  797.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  798.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  799.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  800.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  801.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  802.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  803.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  804.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  805.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  806.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  807.     $"0023 F500 00A0 00A1 00A0 00A0 00A1 00A4"
  808.     $"0002 0750 0001 000A 0000 0000 0000 0000"
  809.     $"0022 0060 0057 0000 0023 0DEA 0023 0000"
  810.     $"0023 0900 0023 0000 0023 F516 0023 0000"
  811.     $"0023 F500 0023 0000 001A BFFF BFFF BFFF"
  812.     $"0084 000A 0000 0000 0000 0000 00A0 00A3"
  813.     $"0001 000A FFFF FFFF 0081 00B0 0081 00C0"
  814.     $"004A 0057 0060 006D 004A 0064 006D 7FFF"
  815.     $"004B 0063 0064 006C 006D 7FFF 004D 0062"
  816.     $"0063 006B 006C 7FFF 004E 0061 0062 7FFF"
  817.     $"004F 006A 006B 7FFF 0050 0060 0061 7FFF"
  818.     $"0051 0069 006A 7FFF 0052 005F 0060 7FFF"
  819.     $"0053 005E 005F 0068 0069 7FFF 0055 005D"
  820.     $"005E 0067 0068 7FFF 0057 005C 005D 0066"
  821.     $"0067 7FFF 0058 005B 005C 7FFF 0059 0065"
  822.     $"0066 7FFF 005A 005A 005B 7FFF 005B 0064"
  823.     $"0065 7FFF 005C 0059 005A 7FFF 005D 0058"
  824.     $"0059 0063 0064 7FFF 005F 0057 0058 0062"
  825.     $"0063 7FFF 0060 0057 0062 7FFF 7FFF 001A"
  826.     $"0000 0000 0000 0023 0DEA 0023 0900 0023"
  827.     $"F516 0023 F500 00A0 00A1 0022 004A 006D"
  828.     $"17CF 0022 004A 0050 23B7 0022 0019 0086"
  829.     $"2900 0022 0001 0073 3C00 00A0 0083 00FF"
  830. };
  831.  
  832. resource 'PICT' (kOneTrayPICT, sysheap, purgeable)                // One tray LQ sheetfeeder
  833. {
  834.     532,
  835.     {0, 0, 130, 177},
  836.     $"0011 02FF 0C00 FFFF FFFF FFFF 0000 FFFF"
  837.     $"0000 00B0 0000 0081 0000 0000 0000 00A1"
  838.     $"0064 0008 6450 726F 0000 0001 00A0 0082"
  839.     $"001E 001A BFFF BFFF BFFF 0001 000A FFFF"
  840.     $"FFFF 0081 00B0 0031 0060 0029 0067 009C"
  841.     $"001A 0000 0000 0000 0038 001A BFFF BFFF"
  842.     $"BFFF 0031 0065 0001 0081 009C 001A 0000"
  843.     $"0000 0000 0038 001A BFFF BFFF BFFF 0051"
  844.     $"0060 0020 0071 0031 001A 0000 0000 0000"
  845.     $"0058 001A BFFF BFFF BFFF 0061 0060 0021"
  846.     $"006B 0032 010E 005A 001A 0000 0000 0000"
  847.     $"0068 010E 005A 00A0 00A0 00A1 00A4 0002"
  848.     $"0750 0001 000A 0000 0000 0000 0000 0022"
  849.     $"0060 003A 0000 0023 0DEA 0023 0000 0023"
  850.     $"0900 0023 0000 0023 F516 0023 0000 0023"
  851.     $"F500 0023 0000 001A BFFF BFFF BFFF 0084"
  852.     $"000A 0000 0000 0000 0000 00A0 00A3 0001"
  853.     $"000A FFFF FFFF 0081 00B0 0081 00C0 004A"
  854.     $"003A 0060 0050 004A 0047 0050 7FFF 004B"
  855.     $"0046 0047 004F 0050 7FFF 004D 0045 0046"
  856.     $"004E 004F 7FFF 004E 0044 0045 7FFF 004F"
  857.     $"004D 004E 7FFF 0050 0043 0044 7FFF 0051"
  858.     $"004C 004D 7FFF 0052 0042 0043 7FFF 0053"
  859.     $"0041 0042 004B 004C 7FFF 0055 0040 0041"
  860.     $"004A 004B 7FFF 0057 003F 0040 0049 004A"
  861.     $"7FFF 0058 003E 003F 7FFF 0059 0048 0049"
  862.     $"7FFF 005A 003D 003E 7FFF 005B 0047 0048"
  863.     $"7FFF 005C 003C 003D 7FFF 005D 003B 003C"
  864.     $"0046 0047 7FFF 005F 003A 003B 0045 0046"
  865.     $"7FFF 0060 003A 0045 7FFF 7FFF 001A 0000"
  866.     $"0000 0000 0023 0DEA 0023 0900 0023 F516"
  867.     $"0023 F500 00A0 00A1 0022 004A 0050 23B7"
  868.     $"0023 3C00 00A0 0083 00FF"
  869. };
  870.  
  871.  
  872. /*************************** Draft Mode Printing Resources **************************/
  873. // The idft resource describes all of the characters that can be output to the LQ in draft
  874. // mode.  For any of the possible characters, the table lists the one or two character
  875. // sequence that needs to be printed in order to generate the target character.  In the event
  876. // two characters must be printed in order to generate the target character, the second character
  877. // is overstruck on the first character.
  878.  
  879. type 'idft' {
  880.     array charArray {
  881.     unsigned bitstring[1] noBack = 0, Back = 1;            //    Back => must overstrike first character with the second
  882.     unsigned bitstring[3] = 0;
  883.     unsigned bitstring[4]    American =    kAmerican,         // Character sets supported
  884.                                     British    =    kBritish, 
  885.                                     Danish    =    kDanish, 
  886.                                     French    =    kFrench, 
  887.                                     German    =    kGerman, 
  888.                                     Italian    =    kItalian, 
  889.                                     Swedish    =    kSwedish, 
  890.                                     Spanish    =    kSpanish;    
  891.     unsigned hex byte noChar = $00;                            //    The actual character to print
  892.     };
  893. };
  894.  
  895. // Note: to properly see the following characters, this file should be viewed in Courier
  896.  
  897. resource 'idft' (gxPrintingDriverBaseID, sysheap, purgeable)
  898. {
  899.     {
  900.     noBack,        American,    $20;    noBack,        American,    noChar;        // space
  901.     noBack,        American,    $21;    noBack,        American,    noChar;        // !
  902.     noBack,        American,    $22;    noBack,        American,    noChar;        // "
  903.     noBack,        American,    $23;    noBack,        American,    noChar;        // #
  904.     noBack,        American,    $24;    noBack,        American,    noChar;        // $
  905.     noBack,        American,    $25;    noBack,        American,    noChar;        // %
  906.     noBack,        American,    $26;    noBack,        American,    noChar;        // &
  907.     noBack,        American,    $27;    noBack,        American,    noChar;        // '
  908.     noBack,        American,    $28;    noBack,        American,    noChar;        // (
  909.     noBack,        American,    $29;    noBack,        American,    noChar;        // )
  910.     noBack,        American,    $2A;    noBack,        American,    noChar;        // *
  911.     noBack,        American,    $2B;    noBack,        American,    noChar;        // +
  912.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ,
  913.     noBack,        American,    $2D;    noBack,        American,    noChar;        // -
  914.     noBack,        American,    $2E;    noBack,        American,    noChar;        // .
  915.     noBack,        American,    $2F;    noBack,        American,    noChar;        // /
  916.     
  917.     noBack,        American,    $30;    noBack,        American,    noChar;        // 0
  918.     noBack,        American,    $31;    noBack,        American,    noChar;        // 1
  919.     noBack,        American,    $32;    noBack,        American,    noChar;        // 2
  920.     noBack,        American,    $33;    noBack,        American,    noChar;        // 3
  921.     noBack,        American,    $34;    noBack,        American,    noChar;        // 4
  922.     noBack,        American,    $35;    noBack,        American,    noChar;        // 5
  923.     noBack,        American,    $36;    noBack,        American,    noChar;        // 6
  924.     noBack,        American,    $37;    noBack,        American,    noChar;        // 7
  925.     noBack,        American,    $38;    noBack,        American,    noChar;        // 8
  926.     noBack,        American,    $39;    noBack,        American,    noChar;        // 9
  927.     noBack,        American,    $3A;    noBack,        American,    noChar;        // :
  928.     noBack,        American,    $3B;    noBack,        American,    noChar;        // ;
  929.     noBack,        American,    $3C;    noBack,        American,    noChar;        // <
  930.     noBack,        American,    $3D;    noBack,        American,    noChar;        // =
  931.     noBack,        American,    $3E;    noBack,        American,    noChar;        // >
  932.     noBack,        American,    $3F;    noBack,        American,    noChar;        // ?
  933.     
  934.     noBack,        American,    $40;    noBack,        American,    noChar;        // @
  935.     noBack,        American,    $41;    noBack,        American,    noChar;        // A
  936.     noBack,        American,    $42;    noBack,        American,    noChar;        // B
  937.     noBack,        American,    $43;    noBack,        American,    noChar;        // C
  938.     noBack,        American,    $44;    noBack,        American,    noChar;        // D
  939.     noBack,        American,    $45;    noBack,        American,    noChar;        // E
  940.     noBack,        American,    $46;    noBack,        American,    noChar;        // F
  941.     noBack,        American,    $47;    noBack,        American,    noChar;        // G
  942.     noBack,        American,    $48;    noBack,        American,    noChar;        // H
  943.     noBack,        American,    $49;    noBack,        American,    noChar;        // I
  944.     noBack,        American,    $4A;    noBack,        American,    noChar;        // J
  945.     noBack,        American,    $4B;    noBack,        American,    noChar;        // K
  946.     noBack,        American,    $4C;    noBack,        American,    noChar;        // L
  947.     noBack,        American,    $4D;    noBack,        American,    noChar;        // M
  948.     noBack,        American,    $4E;    noBack,        American,    noChar;        // N
  949.     noBack,        American,    $4F;    noBack,        American,    noChar;        // O
  950.     noBack,        American,    $50;    noBack,        American,    noChar;        // P
  951.     noBack,        American,    $51;    noBack,        American,    noChar;        // Q
  952.     noBack,        American,    $52;    noBack,        American,    noChar;        // R
  953.     noBack,        American,    $53;    noBack,        American,    noChar;        // S
  954.     noBack,        American,    $54;    noBack,        American,    noChar;        // T
  955.     noBack,        American,    $55;    noBack,        American,    noChar;        // U
  956.     noBack,        American,    $56;    noBack,        American,    noChar;        // V
  957.     noBack,        American,    $57;    noBack,        American,    noChar;        // W
  958.     noBack,        American,    $58;    noBack,        American,    noChar;        // X
  959.     noBack,        American,    $59;    noBack,        American,    noChar;        // Y
  960.     noBack,        American,    $5A;    noBack,        American,    noChar;        // Z
  961.     
  962.     noBack,        American,    $5B;    noBack,        American,    noChar;        // [
  963.     noBack,        American,    $5C;    noBack,        American,    noChar;        // \
  964.     noBack,        American,    $5D;    noBack,        American,    noChar;        // ]
  965.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ^
  966.     noBack,        American,    $5F;    noBack,        American,    noChar;        // _
  967.     noBack,        American,    $60;    noBack,        American,    noChar;        // `
  968.     
  969.     noBack,        American,    $61;    noBack,        American,    noChar;        // a
  970.     noBack,        American,    $62;    noBack,        American,    noChar;        // b
  971.     noBack,        American,    $63;    noBack,        American,    noChar;        // c
  972.     noBack,        American,    $64;    noBack,        American,    noChar;        // d
  973.     noBack,        American,    $65;    noBack,        American,    noChar;        // e
  974.     noBack,        American,    $66;    noBack,        American,    noChar;        // f
  975.     noBack,        American,    $67;    noBack,        American,    noChar;        // g
  976.     noBack,        American,    $68;    noBack,        American,    noChar;        // h
  977.     noBack,        American,    $69;    noBack,        American,    noChar;        // i
  978.     noBack,        American,    $6A;    noBack,        American,    noChar;        // j
  979.     noBack,        American,    $6B;    noBack,        American,    noChar;        // k
  980.     noBack,        American,    $6C;    noBack,        American,    noChar;        // l
  981.     noBack,        American,    $6D;    noBack,        American,    noChar;        // m
  982.     noBack,        American,    $6E;    noBack,        American,    noChar;        // n
  983.     noBack,        American,    $6F;    noBack,        American,    noChar;        // o
  984.     noBack,        American,    $70;    noBack,        American,    noChar;        // p
  985.     noBack,        American,    $71;    noBack,        American,    noChar;        // q
  986.     noBack,        American,    $72;    noBack,        American,    noChar;        // r
  987.     noBack,        American,    $73;    noBack,        American,    noChar;        // s
  988.     noBack,        American,    $74;    noBack,        American,    noChar;        // t
  989.     noBack,        American,    $75;    noBack,        American,    noChar;        // u
  990.     noBack,        American,    $76;    noBack,        American,    noChar;        // v
  991.     noBack,        American,    $77;    noBack,        American,    noChar;        // w
  992.     noBack,        American,    $78;    noBack,        American,    noChar;        // x
  993.     noBack,        American,    $79;    noBack,        American,    noChar;        // y
  994.     noBack,        American,    $7A;    noBack,        American,    noChar;        // z
  995.     
  996.     noBack,        American,    $7B;    noBack,        American,    noChar;        // {
  997.     noBack,        American,    $7C;    noBack,        American,    noChar;        // |
  998.     noBack,        American,    $7D;    noBack,        American,    noChar;        // }
  999.     noBack,        American,    $7E;    noBack,        American,    noChar;        // ~
  1000.     noBack,        American,    $20;    noBack,        American,    noChar;        // undefined
  1001.     
  1002.     // $80 col
  1003.     noBack,        Swedish,        $5B;    noBack,        American,    noChar;        // Ä
  1004.     noBack,        Swedish,        $5D;    noBack,        American,    noChar;        // Å
  1005.     noBack,        American,    $43;    Back,            American,    $2C;            // Ç
  1006.     noBack,        American,    $45;    Back,            American,    $27;            // É
  1007.     noBack,        Spanish,        $5C;    noBack,        American,    noChar;        // Ñ
  1008.     noBack,        Swedish,        $5C;    noBack,        American,    noChar;        // Ö
  1009.     noBack,        German,        $5D;    noBack,        American,    noChar;        // Ü
  1010.     noBack,        American,    $61;    Back,            American,    $27;            // á
  1011.     noBack,        Italian,        $7B;    noBack,        American,    noChar;        // à
  1012.     noBack,        American,    $61;    Back,            American,    $5E;            // â
  1013.     noBack,        German,        $7B;    noBack,        American,    noChar;        // ä
  1014.     noBack,        American,    $61;    Back,            American,    $7E;            // ã
  1015.     noBack,        Danish,        $7D;    noBack,        American,    noChar;        // å
  1016.     noBack,        French,        $5C;    noBack,        American,    noChar;        // ç
  1017.     noBack,        French,        $7B;    noBack,        American,    noChar;        // é
  1018.     noBack,        French,        $7D;    noBack,        American,    noChar;        // è
  1019.  
  1020.     // $90 col
  1021.     noBack,        American,    $65;    Back,            American,    $5E;            // ê
  1022.     noBack,        American,    $22;    Back,            American,    $65;            // ë
  1023.     noBack,        American,    $69;    Back,            American,    $27;            // í
  1024.     noBack,        Italian,        $7E;    noBack,        American,    noChar;        // ì
  1025.     noBack,        American,    $69;    Back,            American,    $5E;            // î
  1026.     noBack,        American,    $22;    Back,            American,    $69;            // ï
  1027.     noBack,        Spanish,        $7C;    noBack,        American,    noChar;        // ñ
  1028.     noBack,        American,    $6F;    Back,            American,    $27;            // ó
  1029.     noBack,        Italian,        $7C;    noBack,        American,    noChar;        // ò
  1030.     noBack,        American,    $6F;    Back,            American,    $5E;            // ô
  1031.     noBack,        Swedish,        $7C;    noBack,        American,    noChar;        // ö
  1032.     noBack,        American,    $6F;    Back,            American,    $7E;            // õ
  1033.     noBack,        American,    $75;    Back,            American,    $27;            // ú
  1034.     noBack,        French,        $7C;    noBack,        American,    noChar;        // ù
  1035.     noBack,        American,    $75;    Back,            American,    $5E;            // û
  1036.     noBack,        German,        $7D;    noBack,        American,    noChar;        // ü
  1037.         
  1038.     // $A0 col
  1039.     noBack,        American,    $2B;    Back,            American,    $7C;            // †
  1040.     noBack,        American,    $2A;    noBack,        American,    noChar;        // •
  1041.     noBack,        American,    $63;    Back,            American,    $7C;            // ¢
  1042.     noBack,        British,        $23;    noBack,        American,    noChar;        // £
  1043.     noBack,        German,        $40;    noBack,        American,    noChar;        // §
  1044.     noBack,        French,        $5B;    noBack,        American,    noChar;        // °
  1045.     noBack,        American,    $50;    noBack,        American,    noChar;        // ¶
  1046.     noBack,        German,        $7E;    noBack,        American,    noChar;        // ß
  1047.     noBack,        American,    $4F;    Back,            American,    $72;            // ®
  1048.     noBack,        American,    $4F;    Back,            American,    $63;            // ©
  1049.     noBack,        American,    $74;    noBack,        American,    $6D;            // ™
  1050.     noBack,        American,    $27;    noBack,        American,    noChar;        // ´
  1051.     noBack,        French,        $7E;    noBack,        American,    noChar;        // ¨
  1052.     noBack,        American,    $3D;    Back,            American,    $2F;            // ≠
  1053.     noBack,        Danish,        $5B;    noBack,        American,    noChar;        // Æ
  1054.     noBack,        Danish,        $5C;    noBack,        American,    noChar;        // Ø
  1055.     
  1056.     // $B0 col
  1057.     noBack,        American,    $4F;    Back,            American,    $7C;            // ∞
  1058.     noBack,        American,    $2B;    Back,            American,    $5F;            // ±
  1059.     noBack,        American,    $3C;    Back,            American,    $5F;            // ≤
  1060.     noBack,        American,    $3E;    Back,            American,    $5F;            // ≥
  1061.     noBack,        American,    $59;    Back,            American,    $3D;            // ¥
  1062.     noBack,        American,    $75;    noBack,        American,    noChar;        // µ
  1063.     noBack,        American,    $40;    noBack,        American,    noChar;        // ∂
  1064.     noBack,        American,    $DC;    Back,            American,    $3E;            // ∑
  1065.     noBack,        American,    $6E;    noBack,        American,    noChar;        // ∏
  1066.     noBack,        American,    $6E;    noBack,        American,    noChar;        // π
  1067.     noBack,        American,    $2F;    noBack,        American,    noChar;        // ∫
  1068.     noBack,        American,    $61;    Back,            American,    $5F;            // ª
  1069.     noBack,        American,    $6F;    Back,            American,    $5F;            // º
  1070.     noBack,        American,    $5A;    noBack,        American,    noChar;        // Ω
  1071.     noBack,        Danish,        $7B;    noBack,        American,    noChar;        // æ
  1072.     noBack,        Danish,        $7C;    noBack,        American,    noChar;        // ø
  1073.  
  1074.     // $C0 col
  1075.     noBack,        Spanish,        $5D;    noBack,        American,    noChar;        // ¿
  1076.     noBack,        Spanish,        $5B;    noBack,        American,    noChar;        // ¡
  1077.     noBack,        American,    $CC;    Back,            American,    $DA;            // ¬
  1078.     noBack,        American,    $C5;    noBack,        American,    noChar;        // √
  1079.     noBack,        American,    $53;    noBack,        American,    noChar;        // ƒ
  1080.     noBack,        American,    $3D;    noBack,        American,    noChar;        // ≈
  1081.     noBack,        American,    $5E;    Back,            American,    $2D;            // Δ
  1082.     noBack,        American,    $C8;    noBack,        American,    noChar;        // «
  1083.     noBack,        American,    $D5;    noBack,        American,    noChar;        // »
  1084.     noBack,        American,    $C9;    noBack,        American,    noChar;        // …
  1085.     noBack,        American,    $20;    noBack,        American,    noChar;        // non-breaking space
  1086.     noBack,        American,    $41;    Back,            American,    $60;            // À
  1087.     noBack,        American,    $41;    Back,            American,    $7E;            // Ã
  1088.     noBack,        American,    $4F;    Back,            American,    $7E;            // Õ
  1089.     noBack,        American,    $6F;    noBack,        American,    $65;            // œ
  1090.     noBack,        American,    $4F;    noBack,        American,    $45;            // Œ
  1091.     
  1092.     // $D0 col
  1093.     noBack,        American,    $2D;    noBack,        American,    noChar;        // –
  1094.     noBack,        American,    $D3;    noBack,        American,    noChar;        // —
  1095.     noBack,        American,    $22;    noBack,        American,    noChar;        // “
  1096.     noBack,        American,    $22;    noBack,        American,    noChar;        // ”
  1097.     noBack,        American,    $27;    noBack,        American,    noChar;        // ‘
  1098.     noBack,        American,    $60;    noBack,        American,    noChar;        // ’
  1099.     noBack,        American,    $2B;    noBack,        American,    noChar;        // ÷
  1100.     noBack,        American,    $DB;    noBack,        American,    noChar;        // ◊
  1101.     noBack,        American,    $79;    Back,            American,    $22;            // ÿ
  1102.     noBack,        American,    $59;    Back,            American,    $22;            // Ÿ
  1103.     noBack,        American,    $2F;    noBack,        American,    noChar;        // /
  1104.     noBack,        American,    $DD;    noBack,        American,    noChar;        // €
  1105.     noBack,        American,    $3C;    noBack,        American,    noChar;        // ‹
  1106.     noBack,        American,    $3E;    noBack,        American,    noChar;        // ›
  1107.     noBack,        American,    $66;    noBack,        American,    $69;            // fi
  1108.     noBack,        American,    $66;    noBack,        American,    $6C;            // fl
  1109.     
  1110.     // $E0 col
  1111.     noBack,        American,    $3D;    Back,            American,    $7C;            // ‡
  1112.     noBack,        American,    $2E;    noBack,        American,    noChar;        // ·
  1113.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ‚
  1114.     noBack,        American,    $2C;    noBack,        American,    noChar;        // „
  1115.     noBack,        American,    $25;    noBack,        American,    noChar;        // ‰
  1116.     noBack,        Danish,        $5D;    noBack,        American,    noChar;        // Â
  1117.     noBack,        American,    $45;    Back,            American,    $5E;            // Ê
  1118.     noBack,        American,    $41;    Back,            American,    $27;            // Á
  1119.     noBack,        American,    $45;    Back,            American,    $22;            // Ë
  1120.     noBack,        American,    $45;    Back,            American,    $60;            // È
  1121.     noBack,        American,    $49;    Back,            American,    $27;            // Í
  1122.     noBack,        American,    $49;    Back,            American,    $5E;            // Î
  1123.     noBack,        American,    $49;    Back,            American,    $22;            // Ï
  1124.     noBack,        American,    $49;    Back,            American,    $60;            // Ì
  1125.     noBack,        American,    $4F;    Back,            American,    $27;            // Ó
  1126.     noBack,        American,    $4F;    Back,            American,    $5E;            // Ô
  1127.     
  1128.     // $F0 col
  1129.     noBack,        American,    $C0;    noBack,        American,    noChar;        // 
  1130.     noBack,        American,    $4F;    Back,            American,    $60;            // Ò
  1131.     noBack,        American,    $55;    Back,            American,    $27;            // Ú
  1132.     noBack,        American,    $55;    Back,            American,    $5E;            // Û
  1133.     noBack,        American,    $55;    Back,            American,    $60;            // Ù
  1134.     noBack,        American,    $69;    noBack,        American,    noChar;        // i
  1135.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ^
  1136.     noBack,        Danish,        $7E;    noBack,        American,    noChar;        // ˜
  1137.     noBack,        American,    $2D;    noBack,        American,    noChar;        // ¯
  1138.     noBack,        American,    $2D;    noBack,        American,    noChar;        // ˘
  1139.     noBack,        American,    $2E;    noBack,        American,    noChar;        // ·
  1140.     noBack,        American,    $2E;    noBack,        American,    noChar;        // °
  1141.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ¸
  1142.     noBack,        American,    $22;    noBack,        American,    noChar;        // ˝
  1143.     noBack,        American,    $2C;    noBack,        American,    noChar;        // ˛
  1144.     noBack,        American,    $5E;    noBack,        American,    noChar;        // ˇ
  1145.     };
  1146. };
  1147.  
  1148.  
  1149. // This 'STR#' contains a list of all of the native mode fonts that are supported.  Note the fonts
  1150. // listed here MUST exist in the target system.
  1151.  
  1152. resource 'STR#' (kFormatModeFontsID, sysheap, purgeable) 
  1153. {
  1154.     {
  1155.         "Monaco"
  1156.     }
  1157. };
  1158.  
  1159.  
  1160. // This 'STR#' contains a list of all of the native mode styles that are supported (the indices into the
  1161. // list are well known so don't reorder them.
  1162.  
  1163. resource 'STR#' (kFormatModeStylesID, sysheap, purgeable) 
  1164. {
  1165.     {
  1166.         "Bold",            //    kBoldStyle
  1167.         "Underline"        //    kUnderlineStyle
  1168.     }
  1169. };
  1170.  
  1171.  
  1172. // This 'STR#' contains a list of all of the qualities that are supported.
  1173.  
  1174. resource 'STR#' (kQualityID, sysheap, purgeable) 
  1175. {
  1176.     {
  1177.         "Best",
  1178.         "Rough"
  1179.     }
  1180. };
  1181.